home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Code Resources / Ingis WDEF 1.3 / Demo ƒ / Circular ƒ / CustomStubs.p next >
Text File  |  1997-05-09  |  6KB  |  150 lines

  1. { *** DEMO FOR the IngisWDEF WDEF building package *** }
  2.  
  3. {© 1994-1995 by Ingemar Ragnemalm}
  4. {You may use it freely as long as credits are given in the final program.}
  5.  
  6.  
  7. {This demo creates a plain, circular window. This is very easy - all procedure are left empty except}
  8. {BuildCustomRegions!}
  9.  
  10. {This unit holds all custom code}
  11.  
  12. unit CustomStubs;
  13.  
  14. interface
  15.     uses
  16. {$IFC UNDEFINED THINK_PASCAL}
  17.         Types, QuickDraw, ToolUtils, Windows, 
  18. {$ENDC}
  19.         IngisWDEFUtils;
  20.  
  21. {Lots of routines, right? Don't worry; you can skip several of them if you don't plan on supporting zoom box,}
  22. {close box or grow regions, and you can call some default routines in IngisWDEFUtils.}
  23.  
  24.     procedure GetGrowRgn (varCode: integer; macWindow: WindowPeek; var growRgn: RgnHandle);
  25.     procedure GetCloseBox (varCode: integer; dragBar: RgnHandle; var closeBox: Rect);
  26.     procedure GetZoomBox (varCode: integer; dragBar: RgnHandle; var zoomBox: Rect);
  27.     procedure DrawCloseBox (varCode: integer; macWindow: WindowPeek; closeBox: Rect; colorFlag: Boolean);
  28.     procedure DrawZoomBox (varCode: integer; macWindow: WindowPeek; zoomBox: Rect; colorFlag: Boolean);
  29.     procedure DrawHitCloseBox (varCode: integer; macWindow: WindowPeek; closeBox: Rect; colorFlag: Boolean);
  30.     procedure DrawHitZoomBox (varCode: integer; macWindow: WindowPeek; zoomBox: Rect; colorFlag: Boolean);
  31.     procedure DrawDragBar (varCode: integer; macWindow: WindowPeek; dragBar: RgnHandle; colorFlag: Boolean);
  32.     procedure BuildCustomRegions (varCode: integer; theRect: Rect; contRgn, dragRgn: RgnHandle);
  33.     procedure DrawScrollFrame (varCode: integer; macWindow: WindowPeek; theRect: Rect);
  34.     procedure DrawTheGrowIcon (varCode: integer; macWindow: WindowPeek; theRect: Rect; growRgn: RgnHandle; colorFlag: Boolean);
  35.     procedure InitMyWindow (varCode: integer; macWindow: WindowPeek);
  36.     procedure DisposeMyWindow (varCode: integer; macWindow: WindowPeek);
  37.  
  38. {** Constants **}
  39.     const
  40.         kFrameWidth = 1;        { Thickness of frame around window. 1 is normal.}
  41.         kShadowLength = 1;        { Size of drop shadow. 1 is normal.}
  42.         kMinDepthForColor = 4;    { Smallest pixel size for color. 8 (256 colors) is normal. }
  43.         kMinWidth = 10;        { Limits for the dragging rectangle? }
  44.         kMinHeight = 10;
  45.  
  46.     type
  47.         MyDataRecord = record
  48.                 theWindowState: WStateData;
  49. {Insert any globals you need here!}
  50.             end;
  51.         MyDataPtr = ^MyDataRecord;
  52.         MyDataHandle = ^MyDataPtr;
  53.  
  54. implementation
  55.  
  56. {*****************************************************************************}
  57. { GetGrowRgn}
  58. {        Return the region with the grow icon, if any.}
  59. { *****************************************************************************}
  60.  
  61.     procedure GetGrowRgn (varCode: integer; macWindow: WindowPeek; var growRgn: RgnHandle);
  62.     begin
  63.     end;
  64.  
  65. {*****************************************************************************}
  66. { GetCloseBox}
  67. {        Pass back a rectangle which encloses the close box of the window}
  68. { *****************************************************************************}
  69.  
  70.     procedure GetCloseBox (varCode: integer; dragBar: RgnHandle; var closeBox: Rect);
  71.     begin
  72.     end;
  73.  
  74.     procedure GetZoomBox (varCode: integer; dragBar: RgnHandle; var zoomBox: Rect);
  75.     begin
  76.     end;
  77.  
  78. {*****************************************************************************}
  79. { Draw close box and zoom box, in normal and hit state }
  80. {        Draw the close box in "hit" state. This can be as simple as an InvertRect. }
  81. { *****************************************************************************}
  82.  
  83.     procedure DrawCloseBox (varCode: integer; macWindow: WindowPeek; closeBox: Rect; colorFlag: Boolean);
  84.     begin
  85.     end; {}
  86.     procedure DrawZoomBox (varCode: integer; macWindow: WindowPeek; zoomBox: Rect; colorFlag: Boolean);
  87.     begin
  88.     end; {}
  89.     procedure DrawHitCloseBox (varCode: integer; macWindow: WindowPeek; closeBox: Rect; colorFlag: Boolean);
  90.     begin
  91.     end; {}
  92.     procedure DrawHitZoomBox (varCode: integer; macWindow: WindowPeek; zoomBox: Rect; colorFlag: Boolean);
  93.     begin
  94.     end; {}
  95.  
  96. {*****************************************************************************}
  97. { DrawDragBar, BW and Color version}
  98. {        Draw the drag bar (not close box/zoom box)}
  99. { *****************************************************************************}
  100.  
  101.     procedure DrawDragBar (varCode: integer; macWindow: WindowPeek; dragBar: RgnHandle; colorFlag: Boolean);
  102.     begin
  103.     end; {DrawDragBar}
  104.  
  105. {*****************************************************************************}
  106. { BuildCustomRegions}
  107. {        Build the contents region and the drag bar region}
  108. { *****************************************************************************}
  109.  
  110.     procedure BuildCustomRegions (varCode: integer; theRect: Rect; contRgn, dragRgn: RgnHandle);
  111.     begin
  112.         OpenRgn;
  113.         FrameOval(theRect);
  114.         CloseRgn(contRgn);
  115.         CopyRgn(contRgn, dragRgn);
  116.     end; {BuildCustomRegions}
  117.  
  118. {*****************************************************************************}
  119. { DrawScrollFrame}
  120. {        Draw the scroll frame, if any (used both when resizing and when drawing the grow icon) }
  121. { *****************************************************************************}
  122.  
  123.     procedure DrawScrollFrame (varCode: integer; macWindow: WindowPeek; theRect: Rect);
  124.     begin
  125.     end; {DrawScrollFrame}
  126.  
  127. {*****************************************************************************}
  128. { DrawTheGrowIcon, BW and Color version}
  129. {        Draw the grow icon, if any }
  130. { *****************************************************************************}
  131.  
  132.     procedure DrawTheGrowIcon (varCode: integer; macWindow: WindowPeek; theRect: Rect; growRgn: RgnHandle; colorFlag: Boolean);
  133.     begin
  134.     end; {DrawTheGrowIcon}
  135.  
  136. {*****************************************************************************}
  137. { InitMyWindow and DisposeMyWindow }
  138. {        Can often be empty. Set the spareFlag in InitMyWindow if the variant should have a zoom box. }
  139. {        InitMyWindow may initialize any globals in MyDataHandle(macWindow^.dataHandle). }
  140. {        DisposeMyWindow must restore/dispose fields in MyDataHandle(macWindow^.dataHandle) as needed. }
  141. { *****************************************************************************}
  142.  
  143.     procedure InitMyWindow (varCode: integer; macWindow: WindowPeek);
  144.     begin
  145.     end; {}
  146.     procedure DisposeMyWindow (varCode: integer; macWindow: WindowPeek);
  147.     begin
  148.     end; {}
  149.  
  150. end.